﻿''' <summary>
''' Ein Roboter der etwas anderen Art.
''' Seht euch vor den See und Luft sind seine staerken.
''' </summary>
''' <remarks></remarks>
Class KORobosturm
    Inherits ObjektKO
    Public Sub New(ByVal Spieler As Integer)
        MyBase.New(Spieler, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub
    Public Sub New(ByVal Spieler As Integer, ByVal Gabefuellstand As Integer, ByVal Gabenart As Gabemodi, ByVal neuSternkosten As Integer)
        MyBase.New(Spieler, Gabefuellstand, Gabenart, neuSternkosten, KIGabeEinsatzstellen.RundenAnfang)
        StartwerteLaden()
    End Sub

    Private Sub StartwerteLaden()
        KOID = "ROBOSTURM"
        Armee = Armeen.ML.ToString
        Musik = "Robosturm"
        Bild = GetBildID()
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.AdvanceWars
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
                Gaben(1) = Gaben(0)
            Case CommanderWarsGameModi.AdvanceWars2
                Sternkosten = 1000
                Gabekosten = 4
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDS
                Sternkosten = 1000
                Gabekosten = 4
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case CommanderWarsGameModi.AdvanceWarsDC
                Sternkosten = 1000
                Gabekosten = 0
                SpezialgabeKosten = 6
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
            Case Else
                Sternkosten = 1000
                Gabekosten = 4
                SpezialgabeKosten = 4
                Gaben = Objektverwalter.GetKO(Bild).KOBeschreibung.Gaben
        End Select
        KORange = 2
        KOname = Objektverwalter.GetKO(Bild).KOBeschreibung.Name

        KOLaden()
    End Sub

    Public Overrides Sub KOLaden()
        Bewegungsbonus = New BewegungsboniTabelleAlles_1
        OffensivStaerke = New FeuerkrafttabelleSeeLuft110
        Select Case DataSettings.CommanderWarsGameModus
            Case CommanderWarsGameModi.CommanderWars2, CommanderWarsGameModi.AdvanceWarsDC
                OffensivStaerke = New FeuerkrafttabelleCustomSeeOffLuftOff(110, 110, 100)
                DeffensivStaerke = Nothing
            Case Else
                DeffensivStaerke = New Feuerkrafttabelle80
        End Select

        BonusEinheiten = New StringUndZahl() {New StringUndZahl("INF", 0.1#), New StringUndZahl(MovementSorts.Mech.ToString.ToUpper, 0.1#), New StringUndZahl("SSIEINHEIT", 0.1#), New StringUndZahl("SPAEHER", 0.1#), New StringUndZahl("TTP", 0.1#), New StringUndZahl("BAUPANZER", 0.1#), New StringUndZahl("TTL", 0.1), New StringUndZahl("ART", 0.1), New StringUndZahl("JGPZ", 0.1#), New StringUndZahl("FLAK", 0.1), New StringUndZahl("HOVERFLAK", 0), New StringUndZahl("MISSILE", 0.1#), New StringUndZahl("RKW", 0.1), New StringUndZahl("KPZ", 0.1#), New StringUndZahl("LAEUFER", 0.1), New StringUndZahl("HOVERCRAFT", 0), New StringUndZahl("TITANPZ", 0.1), New StringUndZahl("ABPZ", 0), New StringUndZahl("SCHWERESHOVERCRAFT", 0), New StringUndZahl("MEGAPZ", 0.1#), New StringUndZahl(MovementSorts.Hoellium.ToString.ToUpper, 0.1#), _
                                    New StringUndZahl("T-HELI", -0.05#), New StringUndZahl("K-HELI", -0.05#), New StringUndZahl("AUFKLAERER", -0.05#), New StringUndZahl("JAEGER", -0.05#), New StringUndZahl("BOMBER", -0.05#), New StringUndZahl("ZEPPELIN", -0.05#), New StringUndZahl("TARNK", -0.05#), New StringUndZahl("T-FLUGZEUG", -0.05#), New StringUndZahl("S-BOMBE", -0.05#), _
                                      New StringUndZahl("S-BOOT", -0.05#), New StringUndZahl("L-BOOT", -0.05#), New StringUndZahl("VERSORGUNGSSCHIFF", -0.05#), New StringUndZahl("KREUZER", -0.05#), New StringUndZahl("U-BOOT", -0.05#), New StringUndZahl("ZERSTOERER", -0.05#), New StringUndZahl("SCHLFF", -0.05#), New StringUndZahl("FLTR", -0.05#)}
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWarsDC Then
            'Dafuer sinkt die Feuerkraft aber drastisch
            WetterReichweitenbonus(0) = 0
        End If
    End Sub

    Public Overrides Function GetBaublockade(ByVal Spieler As Integer) As Baublockade
        Return New Baublockade(Baublockade.BauBlockade.AirSea, Spieler)
    End Function

    Public Overrides Sub Gabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If OhneFunktion = False Then
            Dim WZeit As Integer = 2
            AnimationEigene("JESSGABE", WZeit)
            AnimationFeindliche("DRAKEGABE", WZeit)
            MuniTreibrauben(True, False)
        End If
        Bewegungsbonus = New BewegungsboniTabelleAlles_2
        GabeEingesetzt()
    End Sub
    Public Overrides Function GetPowerScript(ByVal Power As Integer) As KOCustom.Power.PowerScript
        Select Case Power
            Case 1
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectStealAmmoFuel(True, False))
                Return P
            Case 2
                Dim P As New KOCustom.Power.PowerScript
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectStealAmmoFuel(True, False))
                P.Effects.Add(New KOCustom.Power.PowerScript.EffectMassDamage(2, KOCustom.Power.PowerScript.EffectMassDamage.DamageUnit.AllEnemies))
                Return P
            Case Else
                Return Nothing
        End Select
    End Function
    Public Overrides Sub SpezialGabeeinsetzen(Optional ByVal OhneFunktion As Boolean = False)
        If DataSettings.CommanderWarsGameModus = CommanderWarsGameModi.AdvanceWars Then
            If OhneFunktion = False Then
                Dim WZeit As Integer = 2
                AnimationEigene("JESSGABE", WZeit)
                AnimationFeindliche("DRAKEGABE", WZeit)
                MuniTreibrauben(True, False)
            End If
            Bewegungsbonus = New BewegungsboniTabelleAlles_2
            GabeEingesetzt()
        Else
            If OhneFunktion = False Then
                Dim WZeit As Integer = 2
                AnimationEigene("SPEZIALGABE", WZeit)
                AnimationFeindliche("SPEZIALGABE", WZeit)
                MuniTreibrauben(True, False)
                AlleFeindeBeschaedigen(2)
            End If
            Bewegungsbonus = New BewegungsboniTabelleAlles_3
            OffensivStaerke = New FeuerkrafttabelleSeeLuft130
            GabeEingesetzt()
        End If
    End Sub

    Public Overrides Sub KOFrame()
        'Wir machen nichts
    End Sub
End Class
Public Class KOBeschreibungRobosturm
    Inherits ObjektKOBeschreibung
    Public Sub New()
        Name = "Robosturm"
        Fein = "......"
        Nein = "...?..."
        Beschreibung = New String() {"Ein Roboter, der die.", "staendige Praesenz Sturms zeigen", "sollte. Er ist zweiter General der", "Mecha Legion."}
        Stil = New String() {"Seine Truppen koennen 1 Feld", "weiterlaufen. Seine Bodentruppen", "sind schaecher und teurer.", "Dafuer sind seine See- und Luft-", "einheiten staerker und billiger."}
        Gabebeschreibung = New String() {"Gegner verlieren die haelfte", "ihrer Munition.", "Seine Truppen koennen weiter laufen."}
        SpezialgabeBeschreibung = New String() {"Seine Truppen sind staerker. Gegner verlieren Munition und Leben."}
        GabeKosten = 4
        Spezialgabekosten = 4
        Gaben = New String() {"Maschineller Sturm", "Maschinelle Vernichtung"}
        Synergie = New Decimal() {2}
        KONamen = New String() {"NAPOLEON"}
        Doppelgabenamen = New String() {"Ueberlegene Macht"}
        Gabesaetze = New String() {"System Runtime. Error! Keine Gegner mehr vorhanden." _
                                       , "...Sturm kommt ihr...keine Chance..." _
                                       , "Befehl analysiert! Gegner zerstoeren." _
                                       , "Niemand kann einen Roboter toeten." _
                                       , "Dies ist der Krieg einer neuen Zeit!" _
                                       , "Ihr Menschen erzittert vor der Macht der Maschinen."}
        Siegsaetze = New String() {".........." _
                                , "...Gegner besiegt Terretorium erobert" _
                                , "Roboter sind ueberlegen. Menschen sind schwach."}
        Tauschsaetze = New String() {"Fuehre Sub wechsel aus..." _
                                    , "...."}
        Doppelgabesaetze = New DoppelGabesatz() {}
        Niederlagesaetze = New String() {"Kein Programm fuer diese Situation gefunden.", _
                                        "Dieser Angriff ist ungueltig. Diese Situation ist unmoeglich."}
    End Sub
End Class
